package com.kingyun.gpsinspection.purificationservice.services.tdm.innerservice.impl;

import com.alibaba.fastjson.JSON;
import com.cqhilink.api.common.utils.UniqueUtil;
import com.kingyun.gpsinspection.purificationservice.facade.model.jsm.EmployeeVo;
import com.kingyun.gpsinspection.purificationservice.dao.mapper.tdm.RectificationNoticeMapper;
import com.kingyun.gpsinspection.purificationservice.facade.model.tdm.*;
import com.kingyun.gpsinspection.purificationservice.facade.service.tdm.RectificationNoticeService;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.Date;
import java.util.HashMap;
import java.util.Map;

/**
 * Created by deadministrator on 2016/11/23.
 * 整改通知
 */
public class RectificationNoticeServiceImpl implements RectificationNoticeService {
    @Autowired
    public RectificationNoticeMapper rectificationNoticeMapper;

    /**
     * 查看
     * @param rectificationNotice
     * @return
     * @throws Exception
     */
    @Override
    public Map<String, Object> list(RectificationNoticeVo rectificationNotice) throws Exception{
        Map<String, Object> map = new HashMap<>();
        rectificationNotice.setLimit( rectificationNotice.getLimit() == null ? 10 : rectificationNotice.getLimit() );
        rectificationNotice.setOffset( rectificationNotice.getOffset() == null ? 0 : rectificationNotice.getOffset() );
        System.out.println("插入前主键为："+rectificationNotice.getNoticeId());
        map.put("total",rectificationNoticeMapper.queryCount(rectificationNotice));
        map.put("rows", JSON.toJSON(rectificationNoticeMapper.queryList(rectificationNotice)));
        return map;
    }

    /**
     * 新增
     * @param employeeVo
     * @param rectificationNotice
     */
    @Override
    public void saveRectificationNotice(EmployeeVo employeeVo, RectificationNotice rectificationNotice) {
        if(rectificationNotice !=null){
            rectificationNotice.setNoticeId(UniqueUtil.uuid());
            rectificationNotice.setCreateUserId(employeeVo.getEmployeeId());
            rectificationNotice.setCreateTime(new Date());
            rectificationNotice.setModifyUserId(employeeVo.getEmployeeId());
            rectificationNotice.setModifyTime(new Date());
            rectificationNotice.setIsDelete((short)0);
        System.out.println("插入前主键为："+rectificationNotice.getNoticeId());
        rectificationNoticeMapper.insertSelective(rectificationNotice);
        System.out.println("插入后主键为："+rectificationNotice.getNoticeId());
    }
    }

    /**
     * 修改
     *
     * @param employeeVo
     * @param rectificationNotice
     * @return
     */
    @Override
    public int updateByPrimaryKey(EmployeeVo employeeVo, RectificationNotice rectificationNotice) {
        rectificationNotice.setModifyUserId(employeeVo.getEmployeeId());
        rectificationNotice.setModifyTime(new Date());
        return rectificationNoticeMapper.updateByPrimaryKeySelective(rectificationNotice);
    }

    /**
     * 根据ID删除：假删除
     *
     * @param employeeVo
     * @param noticeId
     * @return
     */
    @Override
    public int updateStateByIds(EmployeeVo employeeVo, String noticeId) {
        RectificationNotice rectificationNotice=new RectificationNotice();
        rectificationNotice.setNoticeId(noticeId);
        rectificationNotice.setIsDelete((short)1);
        rectificationNotice.setModifyUserId(employeeVo.getEmployeeId());
        rectificationNotice.setModifyTime(new Date());
        return rectificationNoticeMapper.updateByPrimaryKeySelective(rectificationNotice);
    }

    /**
     * 根据ID查询
     * @param noticeId
     * @return
     * @throws Exception
     */
    @Override
    public RectificationNoticeVo findRectificationNoticeId(String noticeId) throws Exception {
        return rectificationNoticeMapper.selectByPrimaryKey(noticeId);
    }
}
